--Pindef model
--module(..., package.seeall)

local sys = require 'sys'
require 'UserDef'
require 'Solar'



DebugList.AimData =1       --允许log.debug

---------------------------------------------
--		调试
-- 		
----------------------------------------------
function mydbg(a,...)
    if DebugList[a] and  DebugList[a] ~=0 then
        log.info(a,...)
    end
end





--------------------------------------------------------
--      测试函数2， 功能是
--      1. 约定JD1,JD2,经度、纬度
--      2. 函数设置 偏差角Da，Dh，Dd
--      3. 保存校准数据SaveAimData
--      目的： 测试calibration（）
--------------------------------------------------------
function MakeAimT2( Da, Dh, Dd )

    -- 生成AimTable

    --[[
    local longitude = 120.62		--经度
    local latitude = -31.32		--纬度
	]]
    local AimT = {}    

	for n=1, 5 do
		_, jd1, jd2 = SolarFun.Date2JulianDay( 2022, 10, 1, 6+ n*2, 1, 1)	-- 根据年月日时分秒，计算儒略日
		A,H = Solar.Position( jd1, jd2, 120.62, -31.32 )				    -- 根据儒略日、经度、纬度，计算太阳的方位角A和高度角H
        SaveAimData(A, H, SolarFun.InclineDeg( A-Da, H-Dh)-Dd,jd1, jd2)
        --table.insert( AimT, n, {A, H, SolarFun.InclineDeg( A+Da, H+Dh)+Dd} )	-- 保存校准参数表，A，H，DIP倾角传感器读数
		log.debug("AimTable[",n,']=',A,"",H,"", SolarFun.InclineDeg( A+Da, H+Dh)+Dd)
	end
    return true
end




--------------------------------------------------------
--      测试函数， 功能在约定的JD1,JD2,经度、纬度下
--      设置偏差角Da，Dh，Dd
--      然后计算AimT={太阳高度角，方位角，倾角}
--      目的： 测试calibration（）
--------------------------------------------------------
function MakeAimT( Da, Dh, Dd )

    -- 生成AimTable

    --[[
    local longitude = 120.62		--经度
    local latitude = -31.32		--纬度
	]]
    local AimT = {}
    

	log.debug("AimTable","生成Aim表")
	log.debug("AimTable","经度,纬度=",120.62, -31.32)
	log.debug("AimTable","年月日时分秒=",2022, 10, 1, 7, 1, 1)
	log.debug("AimTable","偏差角Da,Dh,Dd=",  Da, Dh, Dd)
	log.debug("AimTable","太阳方位角 A               \t太阳高度角 H                 \t太阳对设备倾角 Dip")

	for n=1, 5 do
		_, JD1, JD2 = SolarFun.Date2JulianDay( 2022, 10, 1, 6+ n*2, 1, 1)	-- 定义年月日时分秒
		A,H = Solar.Position( JD1, JD2, 120.62, -31.32 )				-- 定义经纬度和儒略日，计算太阳的方位角A和高度角H
		table.insert( AimT, n, {A, H, SolarFun.InclineDeg( A+Da, H+Dh)+Dd} )	-- 保存校准参数表，A，H，DIP倾角传感器读数
		log.debug("AimTable[",n,']=',A,"",H,"", SolarFun.InclineDeg( A+Da, H+Dh)+Dd)
	end
    return AimT
end